#ifndef VECTOR_3
#define VECTOR_3

#include <string>

class Vector3 {
private:

public:
	float x, y, z;

	Vector3();
	Vector3(float x, float y, float z);
	Vector3(const Vector3 &v);

	std::string toString();

	float length() const;
	Vector3 cross(const Vector3 &v);
	Vector3 normalize();
	void zero();

	Vector3& operator =(const Vector3 &v);
	bool operator ==(const Vector3 &v) const;
	bool operator !=(const Vector3 &v) const;

	Vector3 operator +(const Vector3 &v) const;
	Vector3 operator -(const Vector3 &v) const;
	Vector3 operator -() const;
	Vector3 operator *(float n) const;
	float operator *(const Vector3 &v) const;
	Vector3 operator /(float n) const;

	Vector3& operator +=(const Vector3 &v);
	Vector3& operator -=(const Vector3 &v);
	Vector3& operator *=(float n);
	Vector3& operator /=(float n);
};

#endif
